#ifndef __KYLIN_VIKEY_H_
#define __KYLIN_VIKEY_H_

#include "type.h"

#include "ukey-macro.h"

#ifdef ENABLE_VIKEY
/*
 * vikey_activate_system, activate system with vikey
 * return NO_ERROR if succeed, or error number if not
 */
int vikey_activate_system(const char* license_serial, 
			  const char* kyinfo_ukey, const char* expire_date, 
			  encrypted_number_generator ukey_raw_generator);

/*
 * vikey_get_hid_buf, get hid of vikey
 * return NO_ERROR if succeed, or error number if not
 */
char* vikey_get_hid();

/*
 * vikey_dump, dump vikey information to file f
 * encrypt: whether encryption is needed or not
 * display_all: whether display all information or not
 * return NO_ERROR if succeed, or error number if not
 */
int vikey_dump();

/*
 * vikey_find, find vikey
 * return NO_ERROR if vikey is inserted, or error number if not
 */
int vikey_find(unsigned int* count);

#endif // ENABLE_VIKEY

#endif
